package com.loans.product.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 产品对象 tb_product
 * 
 * @author ruoyi
 * @date 2022-12-12
 */
public class TbProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 0抵押，1信用，2担保 */
    @Excel(name = "0抵押，1信用，2担保")
    private Long productType;

    /** 期数 3期 6期 12期 */
    @Excel(name = "期数 3期 6期 12期")
    private Long productPeriodsId;

    /** 手续费 */
    @Excel(name = "手续费")
    private BigDecimal productCharge;

    /** 产品最小额度 */
    @Excel(name = "产品最小额度")
    private BigDecimal productMin;

    /** 产品最大额度 */
    @Excel(name = "产品最大额度")
    private BigDecimal productMax;

    /** 放贷时间 */
    @Excel(name = "放贷时间")
    private Long productTimeId;

    /** 逾期还款（罚息  30-50%），按日息计算 */
    @Excel(name = "逾期还款", readConverterExp = "罚=息,3=0-50%")
    private BigDecimal productOverdLoan;

    /**  允许提前还款  0不支持 1支持 */
    @Excel(name = " 允许提前还款  0不支持 1支持")
    private Long productAheadLoan;

    /** 提前还款违约金比例1% */
    @Excel(name = "提前还款违约金比例1%")
    private BigDecimal productAheadLoanContract;

    /** 还款方式 */
    @Excel(name = "还款方式")
    private Long productMethodTypeId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setProductType(Long productType) 
    {
        this.productType = productType;
    }

    public Long getProductType() 
    {
        return productType;
    }
    public void setProductPeriodsId(Long productPeriodsId) 
    {
        this.productPeriodsId = productPeriodsId;
    }

    public Long getProductPeriodsId() 
    {
        return productPeriodsId;
    }
    public void setProductCharge(BigDecimal productCharge) 
    {
        this.productCharge = productCharge;
    }

    public BigDecimal getProductCharge() 
    {
        return productCharge;
    }
    public void setProductMin(BigDecimal productMin) 
    {
        this.productMin = productMin;
    }

    public BigDecimal getProductMin() 
    {
        return productMin;
    }
    public void setProductMax(BigDecimal productMax) 
    {
        this.productMax = productMax;
    }

    public BigDecimal getProductMax() 
    {
        return productMax;
    }
    public void setProductTimeId(Long productTimeId) 
    {
        this.productTimeId = productTimeId;
    }

    public Long getProductTimeId() 
    {
        return productTimeId;
    }
    public void setProductOverdLoan(BigDecimal productOverdLoan) 
    {
        this.productOverdLoan = productOverdLoan;
    }

    public BigDecimal getProductOverdLoan() 
    {
        return productOverdLoan;
    }
    public void setProductAheadLoan(Long productAheadLoan) 
    {
        this.productAheadLoan = productAheadLoan;
    }

    public Long getProductAheadLoan() 
    {
        return productAheadLoan;
    }
    public void setProductAheadLoanContract(BigDecimal productAheadLoanContract) 
    {
        this.productAheadLoanContract = productAheadLoanContract;
    }

    public BigDecimal getProductAheadLoanContract() 
    {
        return productAheadLoanContract;
    }
    public void setProductMethodTypeId(Long productMethodTypeId) 
    {
        this.productMethodTypeId = productMethodTypeId;
    }

    public Long getProductMethodTypeId() 
    {
        return productMethodTypeId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productName", getProductName())
            .append("productType", getProductType())
            .append("productPeriodsId", getProductPeriodsId())
            .append("productCharge", getProductCharge())
            .append("productMin", getProductMin())
            .append("productMax", getProductMax())
            .append("productTimeId", getProductTimeId())
            .append("productOverdLoan", getProductOverdLoan())
            .append("productAheadLoan", getProductAheadLoan())
            .append("productAheadLoanContract", getProductAheadLoanContract())
            .append("productMethodTypeId", getProductMethodTypeId())
            .toString();
    }
}
